package reconhecimento.model;

public class Imagem {
	private int largura;
	private int altura;
	private byte[][] imagem;
	private final Integer valor;  
	
	
	public Imagem(final int largura, final int altura, final byte imagem[][], final Integer valor){
		this.imagem = imagem;
		this.largura = largura;
		this.altura = altura;
		this.valor = valor;
	}

	public Imagem(final int largura, final int altura, final byte imagem[][]){
		this(largura,altura,imagem,null);
	}
	
	@Override
	public boolean equals(final Object obj) {
		if (obj instanceof Imagem) {
			final Imagem image = (Imagem) obj;
			return this.getValor() == image.getValor();
		}
		return false;
	}

	public int getAltura() {
		return this.altura;
	}
	
	public void setAltura(final int altura) {
		this.altura = altura;
	}
	
	public int getLargura() {
		return this.largura;
	}
	
	public void setLargura(final int largura) {
		this.largura = largura;
	}
	
	public byte getPixel(final int posLargura, final int posAltura){
		return this.imagem[posAltura][posLargura];
	}
	
	public void setImagem(byte[][] imagem) {
		this.imagem = imagem;
	}

	public Integer getValor() {
		return this.valor;
	}

	@Override
	public String toString() {
		String retorno="";
		for (int i = 0; i < this.getAltura(); i++) {
			for (int j = 0; j < this.getLargura(); j++) {
				retorno+= String.valueOf(this.imagem[i][j]);
			}
			retorno+="\n";
		}
		return retorno;
	}
}
